草庐IT

python - 是否有 subprocess.call 的安静版本?

全部标签

ruby - 您如何检查 Capistrano 中是否存在文件(在远程服务器上)?

像我在Googleverse中看到的许多其他人一样,我成为了File.exists?陷阱的受害者,它当然会检查您的本地文件系统,而不是您要部署到的服务器。我发现了一个使用shellhack的结果,例如:if[[-d#{shared_path}/images]];then...但这对我来说不太合适,除非它被很好地包装在Ruby方法中。有没有人优雅地解决了这个问题? 最佳答案 在Capistrano3中,您可以:onroles(:all)doiftest("[-f/path/to/my/file]")#thefileexistselse

ruby - 我如何需要特定版本的 ruby​​ gem?

特别是ruby​​-oci8gem。我同时安装了1.0.7和2.0.4。我想要1.0.7。我可以只需要oci8,但我没有得到我想要的版本。irb(main):001:0>require'oci8'=>trueirb(main):002:0>OCI8::VERSION=>"2.0.4"我可以要求使用文件的完整路径,这有效,但不可移植:irb(main):001:0>require'C:\Ruby\lib\ruby\gems\1.8\gems\ruby-oci8-1.0.7-x86-mswin32-60\lib\oci8'=>trueirb(main):002:0>OCI8::VERSIO

ruby - Rspec 的 `should_receive` 是否有侵入性较小的替代方案?

在编写Rspec测试时,我经常对should_receive感到沮丧。我想知道是否有侵入性较小的替代方案。例如:describe"makingacake"doit"shouldusesomeothermethods"do@baker.should_receive(:make_batter)@baker.make_cakeendend对should_receive的调用是一个很好的描述,但它破坏了我的代码,因为should_receive通过屏蔽原始方法来工作,而make_cake除非make_batter实际上返回一些面糊,否则无法继续。所以我把它改成这样:@baker.should_

ruby - 是否有可能在 Ruby 中每个 block 一行?

在Ruby中是否有一种单行的方法来编写每个block?cats.eachdo|cat|cat.nameend我正在尝试缩短项目中的代码量。我正在使用Ruby1.9.2。谢谢! 最佳答案 是的,你可以这样写:cats.each{|cat|cat.name}或simply:cats.each(&:name)请注意,Enumerable#each返回您正在迭代的相同对象(此处为cats),因此您应该只在执行某种副操作时使用它-block内的效果。很可能,您想获取猫的名字,在这种情况下使用Enumerable#map相反:cat_names

ruby-on-rails - 服务器是否在主机 "localhost"(::1) 上运行并在端口 5432 上接受 TCP/IP 连接?

首先请注意,我在StackOverflow和网络上的文章中发现了几个类似的问题,但没有一个能帮助我解决我的问题:PGErrorcouldnotconnecttoserver:ConnectionrefusedIstheserverrunningonport5432?PG::ConnectionBad-couldnotconnecttoserver:Connectionrefusedpsql:couldnotconnecttoserver:Connectionrefused问题来了:我有一个非常棒的Rails应用程序。我和我的合作者使用GitHub一起工作。我们有一个master和一个m

ruby - 你如何在运行时检查 Ruby 中的 Gem 版本?

是否可以在ruby​​/rails应用程序中检查当前加载的gem的gem版本?在调试期间,我希望能够执行如下操作:putsRubyGem.loaded_version(:active_support)有这样的东西吗? 最佳答案 putsGem.loaded_specs["activesupport"].version 关于ruby-你如何在运行时检查Ruby中的Gem版本?,我们在StackOverflow上找到一个类似的问题: https://stackov

Ruby - 查看端口是否打开

我需要一种快速的方法来确定给定端口是否已使用Ruby打开。我目前正在摆弄这个:require'socket'defis_port_open?(ip,port)beginTCPSocket.new(ip,port)rescueErrno::ECONNREFUSEDreturnfalseendreturntrueend如果端口打开,它会很好用,但缺点是偶尔它会等待10-20秒,然后最终超时,抛出ETIMEOUT异常(如果端口已关闭)。因此我的问题是:是否可以将此代码修改为仅等待一秒钟(如果到那时我们什么都没有返回,则返回false)或者是否有更好的方法来检查给定的端口是否在给定的端口上打开

ruby-on-rails - rails : I can't call a function in a module in/lib - what am I doing wrong?

我有一个模块保存在/lib中作为test_functions.rb看起来像这样moduleTestFunctionsdefabcputs123endend进入ruby​​脚本/运行程序,我可以看到该模块正在自动加载(良好的配置约定等等......)>>TestFunctions.instance_methods=>["abc"]所以方法是已知的,让我们尝试调用它>>TestFunctions.abcNoMethodError:undefinedmethod`abc'forTestFunctions:Modulefrom(irb):3没有。这个怎么样?>>TestFunctions::a

ruby - VCR代理 : Record PhantomJS ajax calls with VCR inside Capybara

我已经在这个领域做了一些研究,但没有找到任何解决方案。我有一个站点,其中对facebook进行异步ajax调用(使用JSONP)。我正在使用VCR在Ruby端记录我所有的HTTP请求,所以我认为将此功能也用于AJAX调用会很酷。所以我尝试了一下,想出了一个代理尝试。我正在使用PhantomJS作为headless浏览器和poltergeist来集成到Capybara中。Poltergeist现在配置为使用这样的代理:Capybara.register_driver:poltergeist_vcrdo|app|options={:phantomjs_options=>["--proxy=

ruby - Ruby 是否有任何数字格式化类?

Ruby是否有任何Formatter类或方法可用于格式化货币等数字,或者是否有任何gem可以执行此操作,或者您是否必须自己编写? 最佳答案 Ruby拥有所有标准打印格式化程序,可通过printf、sprintf或使用'formatstring'%[var1,...]获得。>>'%.2f'%3.14159#=>"3.14">>'%4s%-4s'%['foo','bar']#=>"foobar" 关于ruby-Ruby是否有任何数字格式化类?,我们在StackOverflow上找到一个类似的